// 引入express模块
const express = require('express')
const md5 = require('md5')
// 得到应用实例
const app = express()
// 绑定端口
app.listen(3000, '0.0.0.0', () => console.log('http://localhost:3000'))
// 内置中间件，express提供的
// 静态服务器
app.use(express.static('./public'))
// post数据接受处理
app.use(express.urlencoded({ extended: false }))
app.use(express.json())

// 自定义中间件，它就是一个函数，只不过它有一个next回调
const mid1 = (req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', '*')
  next()
}

// app.get('/users', mid1)
/* app.get('/users', mid1, (req, res) => {
  res.send({ id: 1 })
})
app.post('/users', mid1, (req, res) => {
  res.send({ id: 1 })
})
 */

/* // 切面
app.use('/users', mid1)
app.get('/users', (req, res) => {
  res.send({ id: 2 })
})
app.post('/users', (req, res) => {
  res.send({ id: 1 })
})
 */

// 加密
app.get('/login', (req, res, next) => {
  req.password = md5(req.query.password)
  next()
})
// 比对
app.get('/login', (req, res, next) => {
  if (req.query.username == 'admin') {
    next()
  }
  res.send('登录失败')
})
// 登录成功的响应
app.get('/login', (req, res) => {
  // 服务端重定向
  res.redirect('/admin')
})


app.get('/admin', (req, res) => {
  res.send('成功')
})


